export type TValueOriginType = 'string' | 'boolean' | 'number' | 'null' | 'undefined' | 'function' | 'object' | 'array' | 'unknown';

export interface IParam {
    name?: string;
    desp?: string;
    type?: Array<string>;
}

export interface IAttr {
    name: string;
    value: string;
}

export interface IOption {
    name?: string;
    desp?: string;
}

export interface IReturn {
    desp?: string;
    type?: Array<string>;
}

export interface IFunction {
    desp?: string;
    params?: Array<IParam>;
    returns?: IReturn;
}

export interface IComment {
    isBlockComment: boolean;
    commentStart: number;
    commentEnd: number;
    commentText: string;
    commentStartPos: acorn.Position | undefined;
    commentEndPos: acorn.Position | undefined;
    commentLength: number;
}

export interface IComments {
    [lineNum: string]: IComment;
}
